A computer printer is a computer peripheral device that produces a hard copy (permanent human-readable text and/or graphics, usually on paper) from data stored in a computer connected to it. FIG. 1 illustrates a typical computer and printing system. As shown, the personal computer 2 has a display screen 5, a keyboard 6, a coordinate input device (mouse) 7, and a controller body 8. The controller body 8 is connected to the laser printer 3 by a connecting cable 9. Therefore, various image print data generated by the personal computer 2 can be transmitted to the laser printer 3.
The data received by the printer may be: 1) a string of characters, 2) a bitmapped image, or 3) a vector image. The string of characters, in computing terms, plain text is textual material that is usually in an unformatted form. Plain text is represented as files in ASCII text or human-readable form. Each character has a binary code representation. For example, the binary code for a ‘carriage return’ (CR) is 0000 1101. The binary code for an ‘end text’ is 0000 1100. The binary code for a ‘null character’ is 0000 0000.
When a print instruction occurs in the personal computer, the printer driver is started to the conversion of the image data to binary format and to compress the binary data. Then, print data, including language-expressing data by a page-description language, control commands, and the compressed image data are transmitted to the laser printer 3.
A page printer such as a laser printer is capable of performing high-speed printing. Laser printers receive print data, such as text data and image data, from an external device, such as a host computer or a personal computer, and stores the print data as packet data, which includes print information and code data for characters and symbols and print position information for image data. The packet data is developed into bit image data with a printable format and stored in a print image buffer. The developed bit image data for one dot line corresponding to a single raster scan, is sequentially retrieved from the print image buffer and outputted to a print mechanism. The print mechanism then prints the text or image on a print medium such as a sheet of paper.
Much printing that occurs is informal printing in that the document is printed out to review and edit. After the completion of the editing process, the user prints a final version of the document. Many documents have data that is arranged in various ways as desired by the creator of the document. As part of theses arrangements, documents can contain many blank spaces or blank sections. In addition, the font size of the characters will necessitate the need for additional pages to contain the contents of the document. Many of these pages are printed with various amounts of information on them. In some cases, the contents of multiple pages could easily fit onto one page. The printing of document pages containing little content can result in a needless use of paper. To address the problems of wasted paper and time-consuming prints, a manual step prior to printing the document would be to take out the spaces and reduce the size of large fonts. There is no automated algorithm that can preprocess a document prior to printout that will quickly and reliably improve the efficiency of printout. Further, the manual process results in a modification of the actual document that would require changing the document back to the version prior to the compression for printing.
Currently, there is feature in some word processors, which allows a user to identify a selection of text and then also specify the desired number of pages that text should fit in. Taking that information, the word processor then incrementally shaves off point values in the line spacing, font size and margin sizes until it can fit the text into the specified number of pages. However, this feature has limitations in that it only allows very small incremental changes to the printed document. Further, the changes allowed by this function are also forced to be proportional and has a gating factor in the function to only allow a relatively small amount of change to the document before it will fail. The design goal of this feature is to maintain the same exact look and feel of the previous state and all elements of text, kerning, margin, size, line spacing are all changes in proportion to each other. This current feature would not accomplish nearly as much space savings as desired for many applications, but could be only used for documents which must keep the same formatting when printed.
There have been other efforts to reduce or compress data during the printing process. U.S. Pat. No. 5,771,340 (Nakazato, et al.) In the method printing data transmitted from a host computer is stored in a receiving buffer. An editorial unit receives the printing data in the receiving buffer in each one line and writes into a page buffer after compressed. The editorial unit compresses the printing data with plural types of compression techniques and computes compression rates for each line of data. A compression technique to be applied is determined in accordance with the compression rates. The printing data of each line up until those of the preset line X are compressed by the determined compression technique. A determination of the compression technique is repeated in every completion of the printing data processing for the X lines. An expansion unit reads out the printing data in the page buffer and deploys them into a band buffer as a raster data. An engine unit performs printing in accordance with the raster data in the band buffer.
U.S. Pat. No. 5,604,846 (Kadota) In this method in order to improve usage efficiency of a RAM provided in a video controller of a laser printer and to prevent occurrence of print overrun errors, a packet data, which contains character/symbol code data and print position information thereof, is developed into a printable format data on a band basis, which is then compressed and stored in an image data buffer provided in the RAM. The compressed image data is retrieved and decoded to restore the original printable format data. The latter data is stored in a print buffer and then sent to the print mechanism for printing. When the image data buffer does not have sufficient memory space for storing subsequent one band's worth of the packet data in compressed form, the data which has already been processed is erased to secure free area of the image data buffer. Alternatively, resolution of the printable format data stored in the image data buffer in compressed form is reduced to secure free memory space in the image data buffer.
U.S. Pat. No. 6,166,824 (Kadota) This invention describes a print data processing apparatus and an input data generating apparatus, in which image data of an original image generated by a personal computer is converted to binary in a selected binary mode. The designation number Dn of the selected binary mode is transmitted with the binary image data to a laser printer. In the laser printer, a data thinning mode-designating number Pn corresponding to the designation number Dn received is set. If the capacity of a development buffer is insufficient, the mode-designating number Pn is read and identified. If Pn=“X1”, thinning is performed in a first data thinning mode. If Pn=“Y2”, thinning is performed in a second data thinning mode. If Pn=“Z3”, thinning is performed in a third data thinning mode. Therefore, if the capacity of a storage device for storing dot image data to be supplied for printing becomes insufficient, dot image data can be reduced in size in an optimal irreversible compressing device selected in accordance with the type of original image.
Although these techniques address the compression of information in regard to the printing process, these approaches focus on the storing of information in the printer prior to the actual printing operation. These solutions do not address the problems with printing documents such that the amount of paper needed for printing is optimized.
With regard to optimizing the paper on which a document is printed, the drawbacks of the known solutions are that they require a manual step for a person to physically modify a document prior to printing. This takes valuable time and results in the original document being modified. Consider that a person modifies a document to reduce the amount of paper the printout will consume. After printing, the person must either undo the changes or save the new ‘compressed-for-printing’ document under a different name.
There remains a need for a method and system that provides dynamic analysis and compression of the contents and arrangement of a document before the printer prints the document. This analysis and compression should also occur without the need for manual steps and without the need to re-save the document.